Method and apparatus for single source entry of analog and digital data into a computer

ABSTRACT

A system and method for inputting data to a single port of a host computer in parallel from a terminal keyboard and a graphic data digitizer. An adapter circuit includes inputs from the digitizer, the host computer and the terminal, outputs to the host computer and terminal and switching circuitry for routing signals from selected inputs to selected outputs, so that the use of the digitizer is transparent to the host computer. A microprocessor in the adapter circuit controls switching and, additionally, is programmed so that the digitizer, provided with menu images of keyboards, can mimic the function of the keyboard. The microprocessor memory contains a coordinates map of the menus, locatable as the user desires in the work area, which allows the user to access stored keyboard symbols and functions by using the digitizer.

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyrights whatsoever.

BACKGROUND OF THE INVENTION

This invention relates generally to computer peripheral devices for entry of data into a computer and more particularly to the use of a digitizer for digitizing and entering analog graphic information into a computer.

Often in the use of a computer, it is desirable to input two-dimensional graphic data. A wide variety of devices, commonly known as digitizers, have been proposed for this purpose. A typical form of digitizer is shown in U.S. Pat. No. 3,684,828 to Maher. The digitizer includes a surface for supporting a map, drawing or other source of graphic data, a device for designating points on the surface, and means defining an XY coordinate system for determining the coordinates for each designated point. Interface circuitry is provided for converting the coordinates data into digital numbers in an appropriate communication format for transmission to a computer for further processing. The Maher patent utilizes a piezoelectric substrate to detect the coordinates of the designated points by measuring the surface wave pulses propagating through the substrate surface. U.S. Pat. No. 3,692,936 to Moffitt discloses an acoustic digitizer. U.S. Pat. No. 4,177,354 discloses a digitizer employing a light responsive layer and grid system, used in combination with a light spot emitting stylus to generate digital coordinate signals. The digitizer of U.S. Pat. No. 4,255,617 to Carau et al. employs a cursor with a capacitive pickup in combination with a platen comprising a flat surface within which are embedded two orthogonal grids, each consisting of uniformly spaced individual conductors. U.S. Pat. No. 4,318,096 to Thornburg et al. discloses an XY coordinate tablet which is used in combination with an electrically conductive pen and analog-to-digital converter to provide coordinates data to a computer. It employs a piezoelectric audio pickup which produces a succession of pulses when the stylus is drawn across a textured surface such as a sheet of paper. Such sensors, orthogonally arranged, enable the direction of motion on a surface to be determined and digitized in each access by a bidirectional pulse counter.

All of the foregoing devices, and other similar digitizers provide, for each designated point on the graphic data source, a digital word consisting essentially of the X and Y coordinates of the designated point. As shown in the Maher patent, this information is transmitted in a compatible format to an input port of a digital computer. Such a capability is useful in a variety of tasks in which analog graphic data is input to a computer for subsequent processing. However, such systems are limited in their utility.

For most applications of digitizers, it is desirable for the user to be able to work in an interactive mode, alternately giving instructions to the computer and inputting data points for the computer to process in accordance with the given instructions. Conventionally, this task requires the user to type instructions into the computer through the computer terminal keyboard and then turn to the drafting table to input the data points needed to carry out the instructions. This task is repeated over and over again and can be very time-consuming.

For complex tasks, such as processing bid estimates for the cost of construction of buildings, inputting construction blueprint information from a single source is a severe bottleneck. Consequently, for very large construction projects it is desirable for multiple users to be able simultaneously to input and process data for different parts of the project. Mainframe computers or minicomputers are typically used on a time-shared basis for running programs of this magnitude of complexity. Such machines are limited, however, in the number of input and output devices that can be connected to them. Conventionally, the computer terminal and digitizer each require one I/O port. Moreover, time-shared operation of such systems often leaves an individual user waiting between inputting an instruction and inputting coordinate data while the computer processes data input by other users. Consequently, the use of digitizers has been largely limited to use with stand-alone microcomputers. The latter machines, however, are generally slower and of lesser computing capacity and, therefore, are quickly burdened by computational requirements of manipulation of substantial graphic data.

Various computer system arrangements are known that provide for multiterminal or multidevice access to a computer. U.S. Pat. No. 3,653,001 to Ninke discloses a time-shared computer graphic system, based on a large central processor and having multiple user terminals or local console connected to the processor through modems. Each local console includes a small computer, special purpose display hardware and software, and various local input devices, such as a light pen.

U.S. Pat. No. 4,374,381 to Ng et al. discloses a microcomputer connected to communication ports of a host computer. Connected to the microprocessor are various peripheral devices, such as a keyboard, a bar code reader, a CRT controller with display memory and a CRT with transparent touch pads on its screen.

U.S. Pat. No. 4,078,249 to Lelke et al. discloses a multi-user computer system for formatting textual information, such as in the layout of newspaper advertisements. Each user has a work station which includes a CRT display and keyboard and a graphic digitizer tablet. The keyboard is a standard typewriter style electrical keyboard having keys corresponding to alpha numeric characters and other selected symbols, and a second keyboard in the form of a programmed function keyboard. The display and keyboards of each work station communicate with the computer through an input/output bus controlled by a common logic unit which includes a microprocessor and work station drivers. Digital output signals from the graphic digitizer tablet are relayed back to the host computer, in parallel with communications between the host computer and the keyboard and CRT display portions of the work station. Data input from the graphic digitizer tablet is processed by the host computer and the resultant data is transmitted back through the common logic unit, formatted, and displayed on the CRT of the work station with which the digitizer is associated. This system is typical of and has the drawbacks, discussed above, associated with inputting digitizer data into a host computer in parallel with interactive operation on the data through a CRT display and keyboard. Application of a system like that disclosed by Lelke et al. to much more complicated processing tasks, like bid estimation of construction projects, would require an uneconomical amount of computer processing capacity and provide a slow response time to time-sharing work station users.

Accordingly, a need remains for an improved approach to the inputting of analog coordinate data into a computer for processing in accordance with instructions manipulated by a user of an interactive work station. This need is most acute in relation to time-shared computer systems with multiple user work stations, but also extends to stand-alone or single work station computers, such as microcomputers.

SUMMARY OF THE INVENTION

One object of the invention is, therefore, to improve the inputting of both analog and digital data into a computer.

A second object is to make it easy for a user, communicating interactively with a computer, interchangeably to input digital instructions and data and analog data for processing in accordance with the instructions and prestored programs.

Another object of the invention as aforementioned is to enable the user to input both analog and digital data via a single input device.

A further object is to minimize the computational burden of processing input data.

An additional object is to enable data to be input to a host computer from two input devices in parallel through a single I/O port.

Yet another object is to enable multiple users to input both analog and digital data into a time-shared computer, in a number up to the number of input ports.

The invention is a method and apparatus for inputting both analog and digital information to a host computer via a spatial coordinates digitizer. The digitizer is arranged on a flat work surface. Two-dimensional overlays or menuboards containing images of alphanumeric, function and other symbol keys provided on a computer keyboard are positioned within a portion of the surface area encompassed by the digitizer. An adapter or interface means is provided between the digitizer and the computer for converting the digitizer output data, input in the form of electrical signals defining digital coordinates, into a format mimicking that of a computer display terminal or keyboard. A drawing or blueprint containing graphic data to be entered into the computer is positioned adjacent the menuboards.

The interface means includes computer logic means and communication circuitry switchable under control of the computer logic means for receiving data signals from the digitizer, the host computer or, optionally, from a keyboard, and for transmitting data to the host computer or a display terminal. The interface means includes memory means operable by the computer logic means for storing and accessing data. Such data includes a coordinates map or lookup table of host-computer compatible electrical signals uniquely defining the keyboard symbols represented on the menuboards. The data stored in the memory means can also include formulas, functions or prestored programs accessible through the coordinates map for use by the computer logic means to pre-process input data.

The logic means is preferably programmed to test a data point input from the digitizer in a hierarchy: first to determine if it is a point on a key symbol of a primary keyboard, and, if not, on a secondary keyboard, and if neither, to treat the point as graphic data. Key symbols on the primary keyboard can include three categories of instructions: instructions which only affect the state of the interface logic means; instructions which are only transmitted to the host computer; and instructions which cause the logic means to process other data points, input from any of the keyboard, menuboard, or graphic data, and to provide a resultant answer. The input data and resultant answers can be displayed on the CRT and the user can control what data and answers are sent to the host computer.

Input data includes analog graphic data input from the drawing or blueprint through the digitizer and digital data input either from a keyboard or from the keyboard images via the digitizer. Instructions can likewise be input to the interface computer logic means and the host computer from either the keyboard or menuboard. Users find it advantageous to interact with the host computer solely through the digitizer. Data from the digitizer or keyboard, or resulting from pre-processing by the logic means, and instructions from either keyboard or keyboard image for the host computer, are transmitted from the interface means to the host computer as electrical signals in a single format compatible with the host computer via a single communications line.

In one embodiment, one or more users, each with a display terminal digitizer and adapter as above-described, are connected to a time-shared mainframe or minicomputer, utilizing only one I/O port for each user. Typical data flow is from the digitizer (and keyboard, if used) through the adapter to the computer and back through the adapter to a CRT display. In an alternate embodiment, the adapter is connected to the keyboard input port of a microcomputer. The data flow is like that described above except that the CRT display is driven directly from the microprocessor.

Both embodiments thus enable inputting both analog and digital data to a computer from a digitizer. They enable inputting data in parallel from a digitizer and another input device such as a conventional keyboard to a computer in a single computer-compatible format through a single input port. They also relieve the computer of substantial computational overhead. Such a system and method of operation is especially advantageous in automating bid estimation of construction.

The foregoing and other objects, features and advantages of the invention will become more readily apparent from the following detailed description which proceeds with reference to the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a perspective view of an analog/digital data entry system according to the invention in use by an operator.

FIG. 2 is an adapter device as used in FIG. 1 to interface a digitizer to a computer in accordance with the invention.

FIG. 3 is a rear perspective view of the device of FIG. 2.

FIG. 4 is a rear elevational view of a conventional digitizer control device as used in the system of FIG. 1.

FIG. 5 is a first menuboard displaying images of various engineering and function symbols, numeric symbols, control keys and programmable function keys, as used in the system of FIG. 1.

FIG. 6 is a second menuboard displaying images of alphabetic and other common typewriter keys, as used in the system of FIG. 1.

FIG. 7 is a top plan view showing two alternative arrangements of the work table of FIG. 1.

FIG. 8 is a block diagram of one arrangement of the system of FIG. 1 for inputting digitizer data to a time-shared host computer from one of multiple terminals, each with a dumb CRT display and keyboard.

FIG. 9 is a alternate arrangement of the system of FIG. 1 as used to input digitizer data to a personal computer via its keyboard input port.

FIGS. 10A and 10B are a schematic diagram of electronic computer, memory and communications circuitry of the interface device of FIG. 2.

FIGS. 11A through 11F are three-fourths reduced plan views of six examples of graphic data used in demonstrating the use and operation of the system of FIG. 1.

FIG. 12 is a flow chart of a digitizer interface program in accordance with the invention.

The Appendix hereto includes printouts of four computer programs stored in and utilized by the electronic circuitry of FIGS. 10A and 10B to control operation of the system in accordance with the invention, titled INIT, MAIN, PGM and MATH.

DETAILED DESCRIPTION General Arrangement of Apparatus

Referring to FIG. 1, an analog/digital data entry system 20 according to the invention is mounted on a drafting table 22, which includes a flat work surface 24. The system includes a digitizer, composed of an L-frame coordinates-sensing array 26, a stylus 28 for designating points within the area defined by array 26, and a digitizer control unit 30, connected to array 26 via signal cable 32. At the work station, the system also includes a CRT display 36 and an adapter device 34 containing the interface circuitry shown in FIGS. 10A and 10B.

The digitizer is powered via an AC power cable 25 connected to control unit 30. The interface circuitry of adapter device 34 is provided +12 volt, -12 volt and +5 volt DC power by a conventional power supply (not shown).

Cursor 28 is connected by an electrical signal cable 27 to control unit 30 at connector 29 (FIG. 4). Multi-conductor electrical signal cable 32 connects sensor array 26 to control unit 30 at microphone connector 31 (FIG. 4). Another multi-conductor cable 33 connects control unit 30 at RS-232 output connector 35 (FIG. 4) to adapter unit 34 at digitizer input connector 37 (FIG. 3).

Referring to FIG. 8, in the preferred embodiment, for each work station the interface circuitry of adapter 34 is connected via connector 39 (FIG. 3) to a single I/O port of a host computer 38 through serial (RS-232) input and output lines 40, 42. CRT display 36 is connected to the interface circuitry via output line 44, for displaying information transmitted from the computer. An optional keyboard 46 is connected via lines 48, 50 through the CRT display unit to the interface circuitry of adapter 34. Any of the Texas Instruments 990 or Business System series minicomputers and terminals (except the Model 911 terminal) can be used compatibly with the interface circuitry of FIGS. 10A and 10B and the programs in the Appendix. In an alternative embodiment, shown in FIG. 9, the host computer is a microcomputer 38a, such as a personal computer with a built-in CRT display driven directly from the microcomputer. In either embodiment, connection of lines 44, 50 or line 48 is made to the adapter at terminal connector 41 (FIG. 3).

The serial data transmission rate from control unit 30 to adapter 34 is set by DIP switches 43 (FIG. 4) and from the adapter to the computer by DIP switches 45 (FIG. 3). The front panel of adapter 34, shown in FIG. 2, includes ALIGN, LOCATE MENU, and READY mode indicators 47, 49, 51 and a SELECT button 53 for the user to switch among modes.

Returning to FIG. 1, system 20 further includes a pair of menuboards 52, 54, best seen in FIGS. 5 and 6, displaying images of various portions of keyboard 46 and additional features. Also positioned on the work surface within the area defined by L-frame sensor array 26 is a blueprint 56 containing graphic data 58 to be entered by the user through the digitizer into the host computer via adapter 34 for manipulation in accordance with a suitable host computer program. Primary menuboard 54 includes images of various control keys 60, numeric and arithmetic function keys 62, that mimic those conventionally used on a computer terminal keyboard 46. General purpose, user-programmable function keys 64 are also provided. Finally, menuboard 54 includes engineering scaling keys 66 and preprocessing or measurement function keys 68, specifically applicable to construction bid estimation applications. Secondary keyboard 52 includes images of upper case alphabetic keys 70 and other standard typewriter keys 72 and LOG ON/OFF keys 74. Through operation of the digitizer and adapter, described hereinafter, system 20 enables any function normally performed by a terminal keyboard to be mimicked by designating the appropriate keys on the menuboards using stylus 28.

Both of the menuboards include alignment indicia in the form of four small circles 76, 77, 78, 79 rectangularly arranged in the corners of each menuboard. The circles are consecutively numbered counterclockwise starting in the upper left corner and are spaced farther apart on menuboard 54 than on menuboard 52. These indicia are used in the Locate Menu mode (indicator 49 in FIG. 3) to indicate to the electrical logic circuity of the system where the menus are located. The programs listed in the Appendix and the circuitry of FIGS. 10A and 10B provide a coordinates map associated with these indicia by which a unique electrical signal set stored for each key image can be accessed.

The two menuboards can be located anywhere in the work area defined by L-frame 26, so long as the top edge of each menuboard (denoted by indicia 76, 77) faces and is parallel to one of the coordinates array arms. No elevated obstructions should be placed between the menuboards and the array arms. Prior to locating the menus, arms 26 are initially aligned on surface 24 to assure that they are perpendicular with the assistance of an alignment guide 80, containing three +-shaped indices, labeled A, B and C, and defining two lines intersecting at a right angle at index B.

By way of example, to illustrate one application of the present invention, the host computer is supplied with a construction bid estimation program such as the ACCUBID computer program published by Timberline Systems, Inc. of Tigard, Oreg. For use in such example, blueprint data 58 shows a portion of a building to be constructed. The scaling keys 66 and special function keys 62, such as length of a line between two points and areas of various common geometric patterns, are provided to interact with the bid estimation program. The computer programs in the Appendix hereof include routines specifically adapted to execute the functions of such keys in the manner required by the aforementioned bid-estimating program, as well as routines to carry out the more basic functions of the invention, as further described hereinafter. The programs are written to run on an Intel 8088 microprocessor as shown in FIGS. 10A and 10B, but can be adapted within the invention to operate in other microprocessors.

The present example of system 20 employs a Model GP-8 Sonic Digitizer, manufactured by Science Accessories Corporation of Southport, Conn. In such system, the L-frame sensor array 26 is an acoustic microphone array. Control unit 30 initiates energy pulses which are converted into sonic waves by the stylus 28. The digitizer measures the times required for the sonic energy emitted from the stylus to reach the X and Y sensors of the microphone assembly and converts these times into distance measurements in digital form. Control unit 30 outputs the coordinates of each data point in a serial ASCII format in the following form: SXXXXSYYYYFCL (English) or SXXXXSYYYYYFCL (metric). The symbols "S" are the sign of each coordinate relative to a predetermined origin. The "X" digits represent the X coordinates along the X microphone and the "Y" digits represent the Y coordinates along the Y microphone (FIG. 7). Symbol F is a flag digit output when the system is operated in a stream or continuous mode such as when outlining irregular shapes. Characters "C" and "L" are carriage return and line feed characters.

As mentioned above, coordinates data output in the foregoing digital format over cable 33 from RS232 connector 35 to digitizer connector 37, at a transmission rate set by DIP switches 43 on control unit 30. The proper setting for such switches for use with the programs in the Appendix, counting from left to right, is as follows:

    ______________________________________                                         1    2     3        4   5      6     7    8   9    10                          ______________________________________                                         up   up    down     up  down   down  up   up  up   up                          ______________________________________                                    

The adapter transmission rate is set to match the baud rate of the terminals associated with the particlar model of host CPU that is being used. The ACCUBID estimating software is presently implemented on the various models of Texas Instruments computers, each having a unique associated sysgen. Following is a table of the most commonly implemented sysgens and their associated baud rates:

    ______________________________________                                         Timberline Systems Standard Sysgens                                                    Sysgen Baud Rate                                                       ______________________________________                                         1.        BSLDR    19,200                                                      2.        BSDK1    19,200                                                      3.        BS303     9,600                                                      4.        BS307     9,600                                                      5.        BSTP1    19,200                                                      6.        BSTPX    19,200                                                      ______________________________________                                    

If system 20 is implemented in a remote terminal, communicating with the host computer through a modem, the baud rate at dip switch 45 is set to match the baud rate of the modem. The following table lists the various baud rates provided by the circuitry of FIGS. 10A and 10B and the associated settings for dip switch 45:

    ______________________________________                                         Digitizer Interface Baud Rate Settings                                         Baud   Switch Number                                                           Rate   1       2       3     4     5     6   7   8                             ______________________________________                                         9,600  up      up      up    up    up    up  up  up                            19,200 down    up      up    up    up    up  up  up                            9,600  up      down    up    up    up    up  up  up                            4,800  up      up      down  up    up    up  up  up                            2,400  up      up      up    down  up    up  up  up                            1,200  up      up      up    up    down  up  up  up                            ______________________________________                                    

Interface Circuitry

Referring to FIGS. 10A and 10B, the interface circuitry of adapter 34 includes a microprocessor and supporting circuitry shown in the upper portion of FIG. 10A, permanent and temporary memory circuitry shown in the lower portion of FIG. 10A, and input/output and user interface circuitry shown in FIG. 10B.

In FIGS. 10A and 10B, part numbers are listed parenthetically for specific commercially available circuit devices used in an operative example of interface circuit 34, but the invention is not so limited. Conventional terminal nomenclature for such devices is shown in the Figures to aid in assembly of the circuit. Power inputs are shown but generally not described.

Referring first to the upper portion of FIG. 10A, the logic circuitry shown therein includes a microprocessor 100, a clock generator 102 and associated crystal 104 for cycling the microprocessor. A flip-flop 103 connected to the clock output line of clock 102 provides a 2.4576 megahertz clock output signal which is used in the circuitry of FIG. 10B. Also connected to the microprocessor is address and data interface circuitry including a quad latch 106 and an octal latch 108. The data and address interface circuitry provides parallel address bus 110, containing address lines designated individually as A0 through A19, and parallel data bus 112, containing lines designated individually as D0 through D7, which connect the logic circuitry to the memory circuitry shown in the lower portion of FIG. 10A. The microprocessor also provides various control signal output lines (ALE, IO/M, RD, WR).

The memory circuitry includes three 16K by 8-bit read only memory chips 114, 116, 118. The programs contained in the Appendix are stored in these memory chips. The memory circuitry also includes a 2K×8-bit random access memory 120, which is used by the microprocessor, as a scratch pad memory, in executing the Appendix programs, to receive incoming coordinates data from the digitizer and to temporarily hold output data pending transmission.

A 4-to-16 decoder 122 controls interaction between the logic circuitry and the memory circuitry and provides decoder control signals to the circuitry of FIG. 10B. The decoder receives control signals from microprocessor output lines IO/M, RD and WR and address lines A16 through A19. The decoder control signals are identified in FIG. 10A by abbreviations adjacent the input and output lines of each element, as will be readily understood by those skilled in the art.

In the lower left portion of FIG. 10A, power supply interface circuitry 124 is illustrated which provides the various filtered DC power levels required by the circuitry of both FIG. 10A and FIG. 10B. This circuitry is connected to a DC power supply by means of a four-contact junction connector designated J3 in the drawing.

Referring now to FIG. 10B, all data transmissions originating either directly or indirectly from the digitizer pass through a serial input/output circuit 130, otherwise referred to as a universal asynchronous receiver transmitter. Coordinates data is input serially from the digitizer via contacts 1 (DIG TXD) and 2 (DIG RTS) of junction connector J2. Contacts 1 and 2 are connected to digitizer connector 37 (FIG. 3). Operation of circuit 130 is controlled in part by read (RD) and write (WR) control signals from microprocessor 100 and a reset signal (RST) from clock generator 102. The circuit is clocked at input CLK by the clock output from flip-flop 103. Parallel data lines D0 through D7 connect the serial input/output circuit through bus 112 to microcomputer 100. Address line A0 is also connected to circuit 130 at input C/D.

Transfer of data from circuit 130 into the memory circuitry is controlled by the microprocessor via chip select signal SIO from decoder 122. Incoming serial data from the digitizer is accumulated to build up a parallel 8-bit word. Periodically, the microprocessor polls circuit 130 by reading a status bit in a status word via address line A.0. in conjunction with read and write signals (RD and WR). The status bit indicates presence of a complete word in an internal buffer. The word is then transferred to the microprocessor via data lines D.0.-DT and the microprocessor places it in RAM 120.

Serial data is output from circuit 130 through transmit data output line TXD. When a parallel word is received from the microprocessor, another status bit in the above-mentioned status word is set. At this time, circuit 130 serially transmits the bits of the parallel word. The RTS output signal is a general purpose one-bit inverting output port. It is programmed by microprocessor 100 to indicate the correction of the interface circuitry to the host computer.

Connected to circuit 130 by transmit and receive clock lines TXC and RXC, is a counter/timer 140, which includes three clock circuits. The counter/timer has data lines D0 through D7 connected to bus 112 and address lines A0 and A1 connected through bus 110 to octal latch 108 (FIG. 10A). The clock output from flip-flop 103 is connected to three clock inputs (CLK0, CLK1, CLK2) of the counter/timer. The aforementioned TXC and RXC clock lines are connected to two clock outputs (OUT.0., OUT1) of the counter/timer. A third clock output (OUT2) provides an interrupt signal to microprocessor 100. Decoder 122 provides a chip select signal (TIMER) to circuit 140 at input CS. The microprocessor also provides read and write signals to the counter/timer at inputs RD and WR. At power up, the microprocessor initializes the counter/timer 140 to transmit an interrupt signal a predetermined interrupt rate (e.g., once per millisecond). This interrupt signal is used as a time base to initiate various periodic functions, such as checking the status of select button 53 and checking for the presence of incoming data in serial I/O circuit 130.

A hexadecimal buffer 142 has five data lines D1 through D5 connected to bus 112 and has five input lines separately connected to junction contacts in junction strip 144. These contacts are connected in turn to baud rate dip switch 45 (FIG. 3) on the back panel of adapter 34. The settings on the dip switches are input to microprocessor 100 through the hex buffer via data lines D1 through D5 to control the serial transmission rate of data from circuit 130 on output line TXD. This control is effected through counter/timer 140, via clock outputs OUT0 and OUT1, which transmit the selected baud rates to serial I/O circuit 130 via the TXC and RXC clock lines.

Output lines TXD and RTS from circuit 130 are connected to transmission switching circuitry, shown at the top of FIG. 10B, as inputs 1B and 1A, respectively, to a pair of 2×1 multiplexers 150, 152. Multiplexer 150 has a pair of output lines extending through line drivers to contacts 10 and 11 on junction strip J2 for connection to the host computer 38, as shown by line 40 in FIG. 8. Multiplexer 152 has an output line connected through a line driver to another contact 7 on junction strip J2 for connection to CRT display 36 as shown by line 44 in FIG. 8. Multiplexer 150 also has a pair of input lines, extending from contacts 4 and 5 on junction strip J2 to inputs 0A and 0B, for inputting serial data from the CRT keyboard through the multiplexer to the host computer, as shown by line 50 in FIG. 8. Similarly, a pair of input lines are connected via contact 8 and 9 of junction J2 to inputs 0A and 0B of multiplexer 152, to transfer data from the host computer to the CRT display, as shown by line 42 in FIG. 8. Junction J2 contacts 4, 5, 6 and 7 are connected to terminal connector 41 (FIG. 3) and contacts 8, 9, 10, 11 and 12 are connected to computer connector 39 (FIG. 3).

A quad latch 154 has control lines 156, 158 connected to the 0 inputs of multiplexers 150, 152, respectively. The quad latch has data lines D0 through D3 connected to bus 112 and a chip select signal (MUX) from decoder 122, through which microprocessor 100 controls switching of the transmission path of data through multiplexers 150, 152. Under direction of the computer program in the Appendix, multiplexer 150 determines whether the host computer receives data from the keyboard or from serial I/O circuit 130 and multiplexer 152 enables CRT display of data alternatively from the host computer or from the serial I/O circuit 130. Multiplexer 152 is not required in the FIG. 9 embodiment, because the host microcomputer 38a directly controls the CRT.

Serial I/O circuit 130 is used to receive information from one source and transmit such information as is or in processed form, to another device. In combination with the switching circuitry 150, 152, 154, the information transmitted from the serial I/O is communicated alternately with information transmitted from one or more other sources to one or more destinations.

As mentioned above with reference to FIG. 2, adapter 34 includes a select button 53 and align, locate menu and ready indicators 47, 49, 51. The select button is shown in FIG. 10B, connected as an input through contacts 7, 8, on a connector J1 to a hexadecimal buffer 160. Buffer 160 is controlled via a chip select signal (SWITCH) from decoder 122 and has a data line D0 connected to bus 112. Under direction of the computer programs in the Appendix, the microprocessor periodically polls buffer 160 to determine whether the select button has been pressed. LED indicators 47, 49, 51 are connected to connector J1 at contacts 1, 3, 5, to which extend three control signal lines (READY, LOCATE, ALIGN) from a quad latch 162, and to +5 volt DC power at contacts 2, 4, 6. Quad latch 162 has three data lines D0, D1 and D2 connected to bus 112 and a chip select signal (LEDS) from decoder 122, controlling operation of the indicators.

General Operation Start-Up

To use system 20, the L-frame array sensors 26 are positioned on work surface 24 and the various electrical connections described above are made to control unit 30, adapter 34, CRT 36, host computer 38 and stylus 28. Menuboards 52, 54 and graphic data 56 are positioned conveniently for the user, for example, as shown in FIG. 7. To keep the stylus cable out of the way of the graphic data and to minimize interference from the cable with the array sensors, it is best to position control unit 30 to the right of or on a shelf under the front edge of the drafting table. The preferred embodiment being implemented with an acoustic digitizer, control unit 30 compensates for air temperature changes and so must be located in an area that is the same temperature as the work surface.

Once the system is assembled, it is turned on in the following order. First, the baud rates are set at dip switches 43, 45 on control unit 30 and adapter 34. Second, control unit 30 and adapter 34 are turned on at their respective power switches, turning on the power indicator on unit 30 and the locate menu indicator 49 on adapter 34. Next, CRT terminal 36 is turned on and given time to perform a conventional self-test routine. Terminal keyboard 46 is then used to log on to host computer 38 and to access the program in the host computer than is to be supplied graphic data through the digitizer, such as the ACCUBID bid estimation program main menu.

Next, the select button 53 on the front panel of adapter 34 is depressed to switch the digitizer to the align mode, as indicated by align indicator 47. In the align mode, the user interacts with the programs of the Appendix to align the digitizer's sensor arrays or arms 26 and the menuboards. If different horizontal and vertical scales are to be used simultaneously, blueprint 54 is also aligned with sensor arrays 26. Once the adapter is in the align mode, sets of coordinates designated by the user within the work area can be transmitted directly from the digitizer to the CRT terminal. The user should access the main menu in the host computer program whenever any action is taken in the alignment mode, to avoid loss of data or communications with the host computer.

The digitizer's arms are aligned by placing a rectangular alignment guide 80 inside the work surface, spaced two inches from each arm. Coordinates A, B and C on the alignment guide are input to the interface circuitry so as to define horizontal and vertical lines and test whether sensor arrays 26 are parallel to the lines. Stylus 28 is used to designate to the adapter microprocessor the location of points A, B and C relative to the digitizer. As points A, B and C are designated with the stylus, their X, Y coordinates will appear on the CRT display. If the sensor arrays are perpendicular and aligned with guide 80, the Y coordinates of points A and B should match, as should the X coordinates of points B and C. If they do not match, it is necessary to move either the alignment guide or the digitizer arms and then test again until the proper match is obtained. In English units, the X and Y coordinates are shown in increments of 0.01 inches. For the digitizer to work properly, the difference between coordinates displayed on the screen after making the points on the alignment guide should be no greater than 0.05 inches, and preferably the coordinates should match exactly. Once the digitizer arms are aligned, this procedure should not have to be repeated if the digitizer is not moved.

Next, after removing guide 80, the menuboards 52, 54 are aligned with the digitizer sensor arrays. As mentioned above, the menuboards can be located anywhere within the digitized area so long as the top edge of each menuboard faces and is parallel to one of the sensor arrays. The menuboards should be positioned so that the one most often used is the most readily accessible. The menuboards should not be positioned within the area required for the graphic data. Primary menuboard 54 is positioned first. Once it is positioned, points 76 and 78 are marked using the stylus. If the menuboard is positioned horizontally, the user compares the Y coordinates displayed on CRT 36 to determine whether they match. If the menuboard is positioned vertically, as illustrated by menuboard 54A in FIG. 7, the X coordinates are compared to determine whether they match. If the coordinates do not match, the menuboard is shifted by an amount indicated by the difference in coordinates and points 76, 77 are again marked. Once the coordinates are matched, transparent tape is used to secure the menuboard to the drafting table. The same procedure is used to align secondary menuboard 52.

Once the menuboards are aligned on the work surface in positions parallel to one of the sensor arrays, they must be located so as to register their position in the memory of digitizer interface 34. The location of the four reference points or indicia on each menuboard must be supplied to the digitizer interface. These points are used by the interface logic to calculate the location of the marks subsequently made on the menuboards during operation and respond appropriately. Each time the alignment indicia on one of the menuboards are marked using the stylus, the coordinates of those indicia are displayed on CRT 36. The programs in the Appendix also utilize these coordinates to establish the location of a coordinates map relative to the coordinates of indicia 76, 77, 78, 79 denoting the addresses of each of the stored functions corresponding to the keys displayed on menuboard 54. Such a coordinates map is likewise established for menuboard 52. Secondary menuboard 52 is located first. Under the program contained in the Appendix, the microprocessor logic will switch to the READY mode as soon as primary menuboard 54 is located. First, select button 53 on the front panel of adapter 34 is pressed, which will turn on the locate menu light 49. Next, stylus 28 is used to mark each of points 76, 78, 79 and 77 (numbered 1, 2, 3, 4) in numerical order, on menuboard 52. The same procedure is repeated for menuboard 54.

The status indicators 49, 51 are then checked to determine whether the ready light 51 is on, which indicates that the interface circuitry of adapter 34 has recorded the position of the menuboards. If the align light 49 is still on, it means that the interface circuitry did not record the position of the menuboards, in which case the locate menu procedure is repeated. If the menuboards are subsequently moved, they must be realigned by following the foregoing procedures for aligning and locating the menuboards.

Display Information

System 20 uses a status or value line at the bottom of the CRT display screen 36 to display information, measurements, and prompts in alphanumeric form. The Value line appears whenever the interface circuitry is in the Ready mode. The Value line provides a visual verification of entries and measurements when using the digitizer, which appear in one of four different formats.

The first format is the display scale format. After locating the menus, with the interface circuitry in the READY mode, the CRT will automatically display the scale on the Value line. Since no scale has been entered up to this point, the Value line will appear as follows:

    ______________________________________                                         PLAN SCALE                                                                               english xxxx/xxxx                                                                            COUNT SCALE  1/1                                       ______________________________________                                    

The value line will display the scale in this format at the conclusion of any scale entry and whenever the display scale key is marked on menuboard 54. The plan scale is labeled using either an English scale, a metric scale, or an auto scale. When different horizontal and vertical scales are entered, the value line will show both scales. For example, after horizontal scale of 1/4 inch and a vertical scale of 1/20 inch has been entered, the value line will appear as follows:

    ______________________________________                                         PLAN   english HOR     1/4  VERT  1/20 COUNT  1/1                              SCALE                                  SCALE                                   ______________________________________                                    

The next format to be displayed is the prompt format. The user marks either the ENG SCALE, METRIC SCALE or AUTO SCALE key on menuboard 52 to begin entering a scale. The value line responds by displaying a prompt for the designated scale, as follows:

Enter English scale

The third format is the Operational format, in which the current measurement function is displayed on the left. The current value will appear in the center, and the total value will appear on the right. If a measurement function is not being performed, the value line will indicate that the interface circuitry is in the Ready mode by displaying a line similar to the following:

    ______________________________________                                         READY -                                                                               CURRENT VALUE  .0000  TOTAL VALUE                                                                               .0000                                  ______________________________________                                    

If the user is using the Length-single measurement function on menuboard 54, the Value line appears as follows:

    ______________________________________                                         LENGTH - Single  CURRENT     .0000                                                                               TOTAL   .0000                                                 VALUE            VALUE                                        ______________________________________                                    

The Constant format is displayed when the numeric keypad of menuboard 54 is used to enter numbers and arithmetic or other operators for manipulating the total value. When a number is entered, the value line will reformat to the Constant format. For example, if the area of a window is measured as 4.5127 and is to be multiplied by the constant six, when the number six is entered using the keypad of menuboard 54, the Value Line is reformatted as follows:

    ______________________________________                                         CURRENT VALUE 6.0000   TOTAL VALUE   4.5127                                    ______________________________________                                    

When the multiplication operator (*) is entered through menuboard 52, the value in the total value field (4.5127) will be multiplied by the value in the current value field (6.0000), and the product will be displayed as the total value on the Value Line as follows:

    ______________________________________                                         CURRENT VALUE .0000   TOTAL VALUE   27.0762                                    ______________________________________                                    

The Scaling Keys

The scaling keys 66 operate as follows:

ENGLISH SCALE tells the digitizer interface (DI) that the blueprint is scaled in English units (e.g., 1/4"=1').

METRIC SCALE tells the DI that the blueprint is scaled in metric units (e.g., 1 cm=1 m).

COUNT SCALE tells the DI that the scale the user is entering is the count scale.

AUTO SCALE tells the DI to set the scale automatically from an existing scale drawing.

HORIZONTAL and VERTICAL differentiate between the horizontal and vertical scales on the blueprints, in the event that they are not the same.

DISPLAY SCALE displays the current scale at the bottom of the terminal display and is used to verify that the correct scale is being used by the DI. It will also clear a partial scale that is not yet registered with the DI, in which case, the DI will revert to using the last complete scale that was registered.

Scaling

The scale of the blueprints must be registered with the interface circuitry and once a scale is registered, that scale will continue to be used by the programs of the Appendix as long as system 20 is turned on. If all the blueprints to be digitized use the same scale, the scale will be set once. Whenever, the scale is to be changed, the same procedure is followed as that used for setting the scale the first time. Scales can be set or changed whenever the ready light 51 on the front panel of adapter 34 is on.

Dimensional scales are registered as ratios of blueprint dimensions to actual size, in either English or metric units. An architectural drawing with, e.g., a 1/4 inch scale, is entered as 1/4. An engineering scale of, e.g., 1/2000, where one inch equals 2,000 feet, is entered as 1/2000. A count scale can be registered in conjunction with the plan scale and can be used alternately with a plane scale without rescaling in the system. A count scale is registered as a ratio of marks to counted items (marks/counted items). For example, if two electrical outlets are needed for every three walls, a scale of 3/2 is entered. For every three walls marked using the stylus, the interface circuitry will count two items. System 20 provides three scaling options: first, standard blueprints with only one scale; second, blueprints with different horizontal and vertical scales; and calculated scales, e.g., for use with off-scale blueprints or to verify accuracy of the blueprints. The procedures for implementing each of these options is detailed below.

Option 1 Standard Blueprints Using One Scale

1. Mark either the ENG SCALE Or the METR SCALE key. This tells the DI whether the blueprint is scaled in inches/feet or in centimeters/meters. Either "Enter English Scale" or "Enter Metric Scale" will be displayed on the Value Line.

2. Enter the numerator of the scale. (If the scale is 1/4 inch, enter 1; if the scale is 1/2000, enter 1.)

3. Enter a slash (/).

4. Enter the denominator of the scale. (If the scale is 1/4 inch, enter 4; if it is 1/2000, enter 2000.)

5. To terminate the scale entry and send it to the DI, mark DONE.

6. Whenever the DI is turned on, the Count Scale automatically defaults to 1/1 and will stay 1/1 until the user changes it. If the user needs to enter a different count scale, mark COUNT SCALE. If not, skip to step 11.

7. Enter the number of marks to be used in the scale. (If the user wants to enter the scale of 3 walls marked to 2 outlets counted, as in the preceding example, enter 3.)

8. Enter a slash (/).

9. Enter the number of units to be used in the scale. (For the same example, you would enter 2.)

10. To terminate the scale entry, mark DONE.

11. The current scale will automatically be displayed on the Value Line. Verify that the scale is correct. If it is not, repeat steps 1 through 10 to enter the correct scale.

Option 2 Blueprints with Different Horizontal and Vertical Scales

If using blueprints, such as some mechanical blueprints, that have different horizontal and vertical scales, the blueprints must be aligned with the digitizer before scaling.

Each page of a blueprint that uses different horizontal and vertical scales must be aligned separatedly. To align a page of blueprint that uses different horizontal and vertical scales so as to make area and diagonal measurements based on the two different scales, the following procedure must be followed. First, press the select button 53 until align light 47 is on. Second, place the blueprint on the drafting table so that all the take-off information is within the digitized work area, but not covering the menuboards. Third, using the stylus, mark two ends of a horizontal line on the blueprint and compare the Y coordinates on the two sets of coordinates that scroll onto the terminal display screen. If the Y coordinates do not match, shift the blueprint and repeat marking the points until the Y coordinates match, as described above in discussion of use of the alignment guide. Once the Y coordinates match, the blueprint is aligned and can be taped to the table.

After the blueprint is aligned, the user can enter the different horizontal and vertical scales by following these steps.

1. Mark either the ENG SCALE or the METR SCALE key. This tells the DI whether the blueprint is scaled in inches/feet or in centimeters/meters.

2. Mark either the HORIZ or the VERT key to set the horizontal or vertical scale. If the horizontal and vertical scales on the blueprint are different, the user must enter each scale separately. Because of this, the user can only mark one of these at a time.

3. Enter the numerator of the scale. (If the scale is 1/4 inch, enter 1; if the scale is 1/2000, enter 1.)

4. Enter a slash (/).

5. Enter the denominator of the scale. (If the scale is 1/4 inch, enter 4; if the scale is 1/2000, enter 2000.)

6. To terminate the scale entry and send it to the DI, mark DONE.

7. To enter the vertical scale, repeat steps 1 through 6.

8. When the DI is first turned on, the Count Scale automatically defaults to 1/1 and will stay 1/1 until the user changes it. If the user needs to enter a different count scale, mark COUNT SCALE. If not, skip to step 12.

9. Enter the number of marks to be used in the scale. (If the user wants to enter the scale of 3 walls marked to 2 outlets counted, as in the earlier example, enter 3.)

10. Enter a slash (/).

11. Enter the number of units to be used in the scale. (For the same example, enter 2.)

12. The current scale will automatically be displayed at the bottom of the terminal display screen. Verify that the scale is correct. If it is not, repeat steps 1 through 11 to enter the correct scale.

Option 3 Calculate a Scale Automatically

The Auto Scale option will automatically set the scale from a specific dimension that you provide from the blueprint. This eliminates errors that might occur because of blueprint reproduction or shinkage and allows you an option for even greater takeoff accuracy.

1. Mark AUTO SCALE. "Enter Auto Scale" will be displayed on the Value Line.

2. If using mechanical blueprints that have different horizontal and vertical scales, mark HORIZ and follow the preceding instructions on alignment for working with different horizontal and vertical scales. For standard prints with one scale, skip this step.

3. Select a straight line that represents a known length. If the horizontal and vertical scales are different, a horizontal line must be used when you are setting the horizontal scale, and a vertical line when you are setting the vertical scale.

4. Use the stylus to mark each end of the line.

5. Enter in feet or meters the length of the actual distance, as detailed on the blueprint. This entry can contain a decimal point with one digit to the right of the decimal point, so you can enter 12'6" as 12.5.

6. To terminate the scale entry, mark DONE.

7. If the horizontal and vertical scales are different, repeat steps 1 through 6, mark VERT, and enter the vertical scale.

8. The scale will automatically be displayed at the bottom of the terminal display screen as the ratio of the actual distance in inches between the two marks made on the blueprint to the numeric length that the user entered.

9. To verify the scale, complete the following steps:

Mark LENGTH-SINGLE on the Primary Menuboard.

Mark both ends of the line on the blueprint.

Mark [+].

Compare the Total Value on the Value Line to the length given on the blueprint.

If the scale is incorrect, repeat steps 1 through 8, above.

10. When the DI is first turned on, the Count Scale automatically defaults to 1/1 and will remain 1/1 until changed. If the user needs to enter a different count scale, mark COUNT SCALE. If not, skip to step 16.

11. Enter the number of marks to be used in the scale. (If the user wants to enter the scale of 3 walls marked to 2 outlets counted, as in our earlier example, enter 3.)

12. Enter a slash (/).

13. Enter the number of units to be used in the scale. (For the same example, the user would enter 2.)

14. To terminate the Count Scale entry, mark DONE.

15. The current scale will automatically be displayed on the Value Line. Verify that the Count Scale is correct. If it is not correct, repeat steps 10 through 14.

16. To return the Value Line to the READY mark, mark CLEAR.

Once a scale has been entered, the operator completes the start-up procedure by logging onto the host computer 38, by using either the menuboard log-on key, or by using the terminal keyboard 36. System 20 is then ready to use for taking graphic data off of a blueprint and entering instructions off the menuboards.

Menuboard Functions

The programs in the Appendix provide the user with a variety of capabilities, accessible through the menuboards. The following is a description of the operation of the menuboard key functions. All of the menuboard keys are marked by pressing the stylus to the area within the outline of the desired key. If a mark is made outside the outline of the key, the mark will be read as the key closest to the mark.

Measurement Function Keys

The Measurement Function keys are used to give instructions to the DI regarding the type of measurement to be made. When one of the Measurement Function keys is marked, the DI will expect the coordinates to be presented in a specific manner so that it can use them to perform a specific calculation. For example, if AREA-TRIANGLE is marked, the DI will expect three marks. When three points are marked, the DI will connect them to form a triangle and will then calculate the area of that triangle.

Marking a Measurement Function key will also place the stylus either in spot mode or in trace mode, as appropriate to the selected function. In spot mode, which is represented by the broken lines that connect the dots on the keys, the stylus will click once each time the tip is pressed. In trace mode, which is represented on the keys by a solid line that connects the dots, the stylus will click repeatedly when the tip is pressed. In trace mode, as the user traces the outline on the blueprint, the stylus will make a series of marks very close together, which the DI connects with straight lines.

AREA-FREEFORM (trace mode) calculates the area of a closed shape that is defined by the user marking an outline on the blueprint. If the outline is not completely closed, the digitizer will connect the first and last marks that were used to define the area.

AREA-TRIANGLE (spot mode) calculates the area of a triangle that is defined by any three marks that are made on the blueprint.

AREA-RECTANGLE (spot mode) calculates the area of a rectangle, square, or parallelogram that is defined by marks made in three of its corners on the blueprint.

LENGTH-SINGLE (spot mode) calculates the straight-line distance between any two marks made on the blueprint.

LENGTH-MULTIPLE (trace mode) calculates the length of any continuous line or series of lines on the blueprint.

COUNT (spot mode) counts the number of marks made on the plan by the stylus.

DONE terminates the current measurement, sends the Current Value to the Total Value, and sends the Total Value to the field the cursor is occupying on the terminal display screen. DONE also terminates the current measurement function and moves the cursor to the next field.

SEND does the same thing as the DONE key, but without moving the cursor to the next field on the terminal display screen. It is used primarily to input values from the digitizer into the ACCUBID or other on-screen calculator or into custom formulas in the host computer program, e.g., prestored programs accessed, by marking one of the general function keys F1-F8 in group 64.

CLEAR erases the Total Value and the Current Value shown at the bottom of the terminal display screen, without sending a value to the terminal. It also clears the current measurement function.

CLEAR LAST clears the Current Value before it is added to the Total Value. It will also erase any marks that have been made but not terminated with a sign or another terminator. After a Current Value has been added to the Total Value, it can be substracted from the Total Value only by repeating the measurement and terminating it with the opposite sign, or by clearing the Total Value and beginning the entire measurement over.

Keyboard Mimics

The keyboard Mimic section of the Primary Menuboard contains keys that function exactly like the corresponding keys on the terminal keyboard. Any function normally performed on the terminal can be mimicked by the keys on the menuboard.

However, four keys in this section are not exactly keyboard mimic keys. The ON and OFF keys on the far right of the Primary Keyboard are keys specific to the digitizer. And although the + and - keys function like the + and - keys on the keyboard, when they are marked while you are using a measurement function, they have additional functions specific to the digitizer.

When using one of the measurement functions and the DI is expecting a command or figure from the menuboard, the terminal keyboard cannot be used to enter the command or figure. However, the menuboard and the terminal keyboard can be used interchangeably at any other time.

OFF deactivates the entire digitizer grid, except for the ON key. It is used when the user wants to use the optional ballpoint tip of the stylus to make notes or marks on the blueprint and does not want them to be digitized. It will clear the Current Value and terminate the measurement function but will not clear the Total Value.

ON reactivates the digitizer grid after it has been deactivated by the OFF Key.

The [+] key terminates a measurement, attaches a positive value to the Current Value, and sends that value to the Total Value field on the Value Line at the bottom of the terminal display screen.

The [-] key terminates a measurement, attaches a negative value to the Current Value, and sends that value to the Total Value field on the Value Line.

The Secondary Menuboard

The Secondary Menuboard contains a typewriter keyboard including alphabetic and punctuation keys, eight sign keys, and LOG ON and LOG OFF keys. It is slightly smaller than the Primary Menuboard, but is aligned and positioned within the digitized work area as is the Primary Menuboard. Although the Secondary Menuboard is not required for the operation of the digitizer, it enables the user to operate the host computer programs entirely from the digitizer without ever leaving the drafting table. Because it works in parallel with the terminal keyboard, the use of the Secondary Menuboard will not preclude the use of the terminal keyboard.

Except for the LOG ON and LOG OFF keys, all of the keys are KEYBOARD MIMIC keys.

LOG ON performs the same function as pressing the BLANK ORANGE key followed by an exclamation point (shift 2) on the Texas Instruments terminal keyboard, thus allowing the user to log on to the computer from the digitizer.

LOG OFF performs the same function as pressing Q followed by [RETURN] on the Texas Instruments terminal keyboard, thus allowing the user to log off the computer from the digitizer.

Data Entry

To take data off of plans or blueprints, the interface circuitry must be in the Ready mode. Typically, data is input from a blueprint in order to carry out some sort of measurement function. Therefore, the user first selects the desired measurement function by marking the selected one of measurement keys 68. In the measurement function mode, the following keys are the only active keys on the menuboards:

other MEASUREMENT FUNCTION keys

DONE

SEND

CLEAR

CLEAR LAST

Operation Keys (+, -, /, *)

Calculator Keys (0,1,2,3,4,5,6,7,8,9)

ON

OFF

Quantity Takeoffs

To do quantity takeoffs, complete the following steps:

1. Mark the MEASUREMENT FUNCTION key that identifies the type of measurement to be made.

2. Use the stylus to mark or trace the figure to be measured. The running total of that measurement will be displayed as the Current Value on the Value Line. If using a measurement function that operates in trace mode, the Current Value will automatically be updated every second.

3. Mark + or - a sign terminator for the measurement. This terminates the measurement and adds or substracts the value in the Current Value to or from the Total Value, which is also displayed on the Value Line.

A sign terminator is not always required. But keep in mind that if the user does not mark a sign terminator when exercising one of the options in step 4, the terminator will default to a + sign.

At this point, the Total Value of the measurement is stored in a buffer and is displayed on the Value Line. Unless this buffer is cleared by using either the DONE or the SEND key to send the Total Value to the terminal or erased by using the CLEAR key, it will remain there, and any other entries that are made will operate on it according to the sign with which the entries are terminated.

4. Select one of the following options:

To send the new Total Value to the host computer and to terminate the current measurement function, mark either the DONE key or the SEND key.

To measure another figure that requires the same measurement function, repeat steps 2 and 3 above.

To measure another figure that requires a different measurement function, repeat steps 1, 2 and 3 above.

To manipulate the Total Value, enter a number using the KEYBOARD MIMIC section of the menu and an operator (+, -, *, or /).

To terminate the measurement function and to clear the Total Value without sending a value to the host computer, mark the CLEAR key.

The DONE key and the SEND key function in the same way, except that the DONE key will also move the cursor to the next entry field in the ACCUBID software, while the SEND key will position the cursor to the immediate right of the entry. Generally, the DONE key is used to enter values into quantity fields in the ACCUBID program, and the SEND key is used to input information from the digitizer to the on-screen calculator or into custom formulas.

EXAMPLES

Following are six example exercises of measurement functions that can be performed using System 20. The first five examples cover individual measurement functions and the last example demonstrates combining or stringing different measurement functions together. All of these examples use the scale one inch equals one foot. This scale is entered as follows:

1. Mark ENG SCALE.

2. Mark [1].

3. Mark a slash (/).

4. Mark [1].

5. To terminate the scale, mark DONE. The scale will automatically be displayed on the Value Line at the bottom of the terminal display screen, and when it reads as follows, the system is ready to begin the exercises.

    ______________________________________                                         PLAN SCALE english  1/1     COUNT SCALE 1/1                                    ______________________________________                                    

To use these examples as exercises, position an enlargement of the drawings in FIGS. 11A through 11F within the digitized work area. (Enlarge so that the line length in FIG. 11A, between points 1 and 2 equals the indicated value in inches.) Notice that each of the six Figures contains a drawing, the picture of one or two measurement function keys, and, to the right of the measurement function keys, a numeric value. (FIGS. 11C and 11D each show two values because they are used for two different exercises.) Use the measurement function pictured under the drawing to measure the drawing. If you measure accurately, your results will match the value shown next to the measurement function.

The values shown in FIGS. 11A through 11F were obtained by using the digitizer to measure repeatedly the full-scale drawings from which FIGS. 11A through 11F are derived, and then averaging the results. Because the digitizer generates a value that has four digits after the decimal point, it is virtually impossible to get exactly the same measurement every time; so subsequent measurements might not be identical to the ones given on FIGS. 11A through 11F.

These exercises will guide the user step by step through the process of using the digitizer to take off measurements from blueprints. By following the instructions for each exercise carefully, the user will readily understand that the digitizer is an efficient and effective tool for inputting both analog graphics and digital data to a host computer. It should be understood, however, that application of the principles of the system and method of operation is not limited to the examples.

Exercise 1

Length-single

The Length-single measurement function, which operates in spot mode, measures the length of a single line that the user defines by marking its endpoints. After marking the Length-single measurement function key, the Digitizer Interface (DI) will wait for the user to mark two points within the digitized work area. Then the DI will automatically measure the straight-line distance between the two points, will adjust the measurement by whatever scale that has been entered in the digitizer, and will display the measurement as the Current Value on the Value Line.

In this exercise, the user measures the line in FIG. 11A as follows:

1. To verify that the scale of Eng 1/1 is being used, mark DISPLAY SCALE.

2. Mark the LENGTH-SINGLE measurement function key. The following should appear on the Value Line at the bottom of the terminal display screen:

    ______________________________________                                         LENGTH - single  CURRENT     .0000                                                                               TOTAL   .0000                                                 VALUE            VALUE                                        ______________________________________                                    

3. Mark points 1 and 2 in FIG. 11A; the measurement will appear in the Current Value field on the Value Line. Compare the Current Value with the value in FIG. 11A. The Value Line on the terminal display screen should look like the line below:

    ______________________________________                                         LENGTH - single  CURRENT    2.0412 TOTAL  .0000                                                 VALUE             VALUE                                       ______________________________________                                    

4. To terminate the measurement and to give the Current Value a positive Value, mark a (+) sign. Doing this will also send the value in the Current Value field to the Total Value field of the Value Line, and will clear the Current Value. Because there was no value in the Total Value field, the new total Value will be the value of the measurement made in step 2. The Value Line should read:

    ______________________________________                                         LENGTH - single  CURRENT    .0000 TOTAL  2.0412                                                 VALUE            VALUE                                        ______________________________________                                    

To determine the accuracy of measurement, subtract the Total Value from the value in FIG. 11A.

5. To clear the Total Value and terminate the measurement function, mark CLEAR.

6. Repeat steps 2, 3, and 4, and compare your Total Value with the value on FIG. 11A.

7. Without clearing the Total Value, mark points 1 and 2 agian; both a Current Value and a Total Value will then appear on the screen. The Current Value will be the measurement just completed, and the Total Value will be the measurement that resulted from step 6. The Value Line should read:

    ______________________________________                                         LENGTH - single  CURRENT    2.0500                                                                               TOTAL  2.0404                                                 VALUE            VALUE                                        ______________________________________                                    

8. To terminate the measurement and give the Current Value a negative value, mark a (-) sign. Because the Current Value now has a negative value, when it is sent to the Total Value field, it will be subtracted from the existing Total Value. The Value Line should read:

    ______________________________________                                         LENGTH -  single  CURRENT    .0000                                                                               TOTAL  -.0096                                                  VALUE           VALUE                                        ______________________________________                                    

The Total Value on the screen will be the difference between the two measurements.

9. To clear the Total Value and terminate the measurement function, mark CLEAR.

10. Mark LENGTH-SINGLE.

11. Mark points 1 and 2 again; then mark a + sign to terminate the measurement. Repeat this step until satisfied with the consistency of your measurements.

12. To clear the Total Value, mark CLEAR.

13. Mark LENGTH-SINGLE and points 1 and 2; the measurement is displayed as the Current Value:

    ______________________________________                                         LENGTH -  single  CURRENT    2.0396                                                                               TOTAL  .0000                                                  VALUE            VALUE                                       ______________________________________                                    

14. Mark point 1; the DI will default a + sign to the Current Value and will send the Current Value to the Total Value field. Mark point 2; the DI will measure the length of the line between points 1 and 2, and will then display the measurement as the Current Value on the Value Line, which should now read:

    ______________________________________                                         LENGTH - single  CURRENT    2.0281                                                                               TOTAL  2.0396                                                 VALUE            VALUE                                        ______________________________________                                    

15. To terminate the measurement made in step 14 and to subtract it from the Total Value, mark a (-) sign. If the two measurements are identical, the Total Value will be 0. Because the digitizer measures so precisely, the two measurements are unlikely to be identical, and the Value Line on the screen will be similar to the line below:

    ______________________________________                                         LENGTH -  single  CURRENT    .0000 TOTAL  .0115                                                  VALUE            VALUE                                       ______________________________________                                    

16. By marking either CLEAR, SEND, or DONE, terminate the measurement function. CLEAR, in addition to terminating the measurement function, will clear the Value Line. SEND will terminate the measurement function, send the Current Value to the Total Value field, and then send the updated Total Value to the cursor position on the terminal display screen. DONE will have the same effect as SEND, but will also move the cursor to the next field on the screen.

Exercise 1

Length-multiple

The Length-multiple measurement function, which operates in trace mode, measures the length of any continuous line or series of lines--even if the line is curved. Remember that in trace mode, as long as the stylus tip is pressed down, the stylus will click repeatedly and each click will be recorded by the Digitizer Interface (DI) as a separate point. As the user uses the stylus to trace the line that is being measured, the digitizer interface will record each click that the stylus makes as an individual point. This has the effect of dividing the line into a series of short, straight segments with a point at each end. Then the interface will measure the length of each of these segments, will add all of these segments together in the order that the points were marked, and will display the sum of the segments on the Value Line as the Current Value.

The Length-multiple measurement function can only be used to measure a continuous line. To measure a line that is not continuous, each section of the line must be measured separately, and then, before measuring a section that is not connected, the first measurement must be terminated by using a sign terminator.

This exercise measures the circumference of the drawing in FIG. 11B. Because three sides of this drawing are straight and the interface program will use a straight line to connect any two points consecutively marked, the user need only mark points 1, 2, 3, and 4 to measure the three straight sides. Then the user can trace the arc between points 4 and 1 to measure the curved side.

When using the Length-multiple measurement function, terminate the measurement so that the DI will know when the measurement is completed. To do this, use the +, -, SEND, or DONE keys, or use another measurement function.

1. To verify that the scale of Eng 1/1 is being used, mark DISPLAY SCALE.

2. Mark LENGTH-MULTIPLE.

3. Mark points 1, 2, 3, and 4. Because Length-multiple operates in the trace mode, the stylus might click more than once when used to make a single point. Because the DI measures the distance between points, if the stylus is not moved, the clicks will mark the same point, and the measurement will not be affected.

4. Trace the arc between points 4 and 1. Because the line that is being measured must be continuous to use the Length-multiple measurement function, the user must trace the arc from point 4 to point 1.

To provide a running total of the length measured, the interface circuitry will update the Current Value every second; after making the last mark, the Value Line should update to read:

    ______________________________________                                         LENGTH - multiple CURRENT    5.7444                                                                               TOTAL  .0000                                                  VALUE            VALUE                                       ______________________________________                                    

The difference between the value on FIG. 11B and the Current Value will indicate how close the measurement has come to the circumference of the drawing.

5. To terminate the measurement and to send the Current Value to the Total Value as a positive value, mark a (+) sign. The Value Line should read:

    ______________________________________                                         LENGTH - multiple CURRENT    .0000                                                                               TOTAL  5.7444                                                  VALUE           VALUE                                        ______________________________________                                    

The interface will still be in the Length-multiple measurement function and the stylus will still be in trace mode.

6. Repeat steps 3, 4, and 5 until satisfied with the consistency of the measurements. To determine how consistent the measurements are, each time step 4 is completed, compare the new Current Value to the previous measurements. As each measurement is terminated, the Total Value will grow; disregard it.

7. To terminate the measurement function and take the stylus out of trace mode, mark either CLEAR, SEND, or DONE. When the stylus is in trace mode and is held down on the outline of the terminating key, it clicks several times before the interface leaves the trace mode; this is normal.

Exercise 3

Area-triangle

The Area-triangle measurement function measures the area of any triangle defined by marking its corners. When marking the Area-triangle measurement function key, the interface will wait for the user to mark three points within the digitized work area. After marking the three points, the interface program will calculate the area of the triangle that is defined by them. To terminate the measurement, the user can mark a sign terminator (+ or -); or can mark either SEND, DONE, another measurement function key, or another point, and the interface program will default a + sign to terminate the measurement.

In this exercise, the area of the triangle in FIG. 11C is measured.

1. To verify that the scale of Eng 1/1 is being used by the Digitizer Interface (DI), mark DISPLAY SCALE.

2. Mark AREA-TRIANGLE, and the following should appear on the Value Line:

    ______________________________________                                         AREA -  triangle CURRENT     .0000                                                                               TOTAL   .0000                                                 VALUE            VALUE                                        ______________________________________                                    

3. Mark points 1, 2, and 3. After making the third point, the area of the triangle that is defined by the three points will be displayed in the Current Value field. The difference between the value given in FIG. 11C and the Current Value on the Value Line will indicate how close the measurement has come to the actual measurement of the triangle.

    ______________________________________                                         AREA - TRIANGLE   CURRENT    1.5194                                                                               TOTAL  .0000                                                  VALUE            VALUE                                       ______________________________________                                    

4. To terminate the measurement and send the value in the Current Value field to the Total Value field, mark a + sign. After doing this, the Value Line should read:

    ______________________________________                                         AREA -  triangle CURRENT    .0000 TOTAL  1.5194                                                 VALUE            VALUE                                        ______________________________________                                    

5. To clear the Total Value and terminate the measurement function, mark CLEAR.

6. Mark AREA-TRIANGLE and points 1, 2 and 3.

7. Instead of terminating the measurement by marking a + sign as before, mark point 1 again, and watch the Value Line. Because this is the fourth point marked in this measurement, the interface program will default a (+) sign and will send the value in the Current Value field to the Total Value field. Then the digitizer will wait for the user to mark the other two corners so that it can complete the measurement of the triangle.

8. To finish the calculation for the area of the triangle, mark points 2 and 3. The interface will complete the calculation and will display the area of the triangle in the Current Value field.

9. To send the value in the Current Value field to the Total Value field and then send the updated value in the Total Value field to the position of the cursor on the terminal display screen, mark SEND. Doing this will also terminate the measurement function and will move the cursor to the immediate right of this value on the terminal display screen.

Exercise 4

Area-Rectangle

The Area-rectangle measurement function measures the area of any squared, rectangle, or parallelogram defined by marking three of its corners. After the user marks the Area-rectangle measurement function key, the interface will wait for three points within the digitized work area to be marked. After marking of the three points, the interface program will determine the location of the fourth point and will calculate the area that is defined by the four points. To terminate the measurement, the user can mark a sign terminator (+ or -); or can mark either SEND, DONE, another measurement function key, or another point, and the interface program will default a (+) sign to terminate the measurement.

This exercise will measure the area of the rectangle in FIG. 11C.

1. To verify that the scale of Eng 1/1 is being used, mark DISPLAY SCALE.

2. Mark AREA-RECTANGLE; the following should appear on the Value Line.

    ______________________________________                                         AREA -  rectangle                                                                               CURRENT    0.0000 TOTAL  .0000                                                 VALUE             VALUE                                       ______________________________________                                    

3. Mark points 1, 2, and 3 in FIG. 11C. After marking the third point, the area of the rectangle that is defined by the three points will be displayed as the Current Value on the Value Line. The difference between the value given on FIG. 11C and the Current Value on the Value Line will indicate how close the user's measurement has come to the measurement of the rectangle.

    ______________________________________                                         AREA -  rectangle                                                                               CURRENT    3.127  TOTAL  .0000                                                 VALUE             VALUE                                       ______________________________________                                    

4. To terminate the measurement and send the value in the Current Value field to the Total Value field as a positive value, mark a (+) sign. After doing this, the Value Line should read:

    ______________________________________                                         AREA -  rectangle                                                                               CURRENT    .0000 TOTAL  3.127                                                  VALUE            VALUE                                        ______________________________________                                    

5. To clear the Total Value and terminate the measurement function, mark CLEAR.

6. Mark AREA-RECTANGLE and points 1, 2, and 3.

7. Instead of terminating the measurement by marking a + sign as before, mark point 1 again, and watch the Value Line. Because this is the fourth point marked in this measurement, the interface program will default a (+) sign terminator, and will send the value in the Current Value field to the Total Value field on the Value Line.

8. To finish the calculation for the area of the rectangle, mark points 2 and 3 again. After doing this, the DI will complete the calculation and will display the area of the rectangle in the Current Value field.

9. Repeat steps 7 and 8 until satisfied with the consistency of the measurements. To determine how consistent the measurements are, each time that step 8 is completed, compare the new Current Value to previous measurements. As each measurement is terminated, the Total Value will grow; disregard it.

10. To terminate the measurement function and send the Total Value to the cursor position on the terminal display screen, mark DONE. Doing this will also move the cursor to the next field on the screen.

Exercise 5

Area-Freeform

The Area-freeform measurement function operates in trace mode and measures the area of closed irregular shapes. As the stylus is used to trace the outline of a drawing, the interface will record each click of the stylus as an individual point, dividing the line into a series of short, straight segments with a point at each end. To close the shape, the interface program will connect the first and last points marked and will then calculate the area inside of that outline and display the area on the Value Line as the Current Value.

This exercise calculates the area of the odd-shaped room that is depicted in FIG. 11D. The room has twelve straight wall sections and one curved wall. Because the DI will use a straight line to connect any points that you mark, the user can simply mark the corners of the straight walls. To get an accurate measurement of the curved wall, the user must trace it.

When using the Area-freeform measurement function, terminate the measurement so that the DI will know when the measurement is completed. To do this, use either the +, the - key, the SEND or DONE key, or use another measurement function.

1. To verify that the scale of Eng 1/1 is being used, mark DISPLAY SCALE.

2. Mark AREA-FREEFORM.

3. Mark points 1, 2, 3, 4, 5, and 6, trace the arc between points 6 and 7, and then mark points 8, 9, 10, 11, 12, and 13. Because the line between points 13 and 1 is a straight line, and because when the DI updates the Current Value, it will use a straight line to connect the first and last point marked, the user need not mark point 1 again.

4. As the points in step 3 are marked, the DI will update the Current Value every second to display a running total of the area marked. When step 3 is completed, the interface program will automatically calculate the area of the entire room and will display the area as the Current Value on the Value Line. After the last point is marked, the Value Line should update to read:

    ______________________________________                                         AREA - FREEFORM   CURRENT    3.1544                                                                               TOTAL  .0000                                                  VALUE            VALUE                                       ______________________________________                                    

The difference between the value in FIG. 11D and the Current Value will indicate how close the user's measurement has come to the measurement of the room.

5. To terminate the measurement and send the value in the Current Value field to the Total Value field as a positive value, mark a + sign. The Value Line should read:

    ______________________________________                                         AREA - FREEFORM   CURRENT    .0000                                                                               TOTAL  3.1544                                                  VALUE           VALUE                                        ______________________________________                                    

The interface circuitry will still be in the Area-freeform measurement function and the stylus will still be in trace mode.

6. Repeat steps 3, 4, and 5 until satisfied with the consistency of the measurements. To determine how consistent the measurements are, each time that step 4 is completed, compare the new Current Value to previous Current Values.

7. To terminate the measurement function and take the stylus out of the trace mode, mark either CLEAR, SEND, or DONE.

8. Repeat steps 2, 3, 4, and 5, and the Total Value will be the area of the entire room. The Digitizer Interface will still be in the Area-freeform measurement function, and the stylus will still be in trace mode.

9. The next step is to calculate the floor area that excludes the kidney-shaped pool. To measure the area of the pool, simply trace its outline on FIG. 11D, and the area will be displayed as the Current Value on the Value Line.

10. To subtract the area of the pool from the total floor area of the room, mark a (-) sign. The Total Value will be the floor area that excludes the pool.

11. To terminate the measurement function and take the stylus out of trace mode, mark either CLEAR, SEND, or DONE.

Exercise 6

Stringing Linear Measurements

To make it possible to perform a series of similar measurements that require different measurement functions, the digitizer interface allows the user to combine measurements, or string them together. If one measurement function is used to measure a drawing and the user wants to switch to a second measurement function to continue the measurement without clearing the Total Value, simply mark the second measurement function. This will allow any measurements derived through the second measurement function to be added to or subtracted from the value already in the Total Value field so that the combined measurements can be sent to the terminal display screen as one value.

This exercise strings together the Length-single and the Length-multiple measurement functions. The diagram in FIG. 12E is the framing diagram for a small deck, and is to be measured to determine the number of feet of framing material required for the job.

1. To verify that the scale of Eng 1/1 is being used, mark DISPLAY SCALE.

2. Mark LENGTH MULTIPLE.

3. Mark points 1, 2, 3, and then mark point 1 again.

4. To terminate the Length-multiple measurement function, to default a (+) sign terminator to the value in the Current Value field, and to send the value in the Current Value field, mark LENGTH-SINGLE.

5. To measure the lengths of the remaining joists, mark points 4, 5, 6 and 7, and 8 and 9. It is preferable to use the ballpoint cartridge in the stylus to be able to make a visible mark on the blueprint to keep track of the points marked and measured.

6. To terminate the measurement, mark a (+) sign. The Total Value will be the number of linear feet of framing material that you will need for the deck.

7. To terminate the measurement function and clear the Value Line, mark CLEAR.

Area measurements can be strung together the same way you can string together length measurements. By marking a new measurement function, the user can terminate the old measurement function without clearing the Total Value, and measurements made using the new measurement function can be added to or subtracted from the Total Value and then sent to the host computer as one value.

This exercise measures the figure that depicts a circular driveway in FIG. 11F. First, the area of the driveway is calculated and then the volume of concrete that would be required to make the driveway 6 inches thick is calculated.

1. To verify that the scale of Eng 1/1 used, mark DISPLAY SCALE.

2. Mark AREA-FREEFORM.

3. Mark points 1, 2, and 3, and then trace the arc between points 3 and 4; mark points 5, 6, and 7, then trace the arc between points 7 and 8; and, finally, mark points 9 and 10. When the interface updates the Current Value, it will use a straight line to connect the first and last points marked. Therefore, because the line that connects points 10 and 1 is a straight line, it is unnecessary to mark point 1 again.

4. The interface program will automatically calculate the area of the driveway and will display it as the Current Value on the Value Line.

The Current Value will be updated by the DI every second, thus providing a running total of the area marked. After marking the last mark, the Value Line should update to read:

    ______________________________________                                         AREA - FREEFORM   CURRENT    3.2758                                                                               TOTAL  .0000                                                  VALUE            VALUE                                       ______________________________________                                    

The difference between the value on FIG. 11F and the Current Value will indicate how close the user's measurement has come to the measurement of the driveway.

5. To terminate the measurement and send the value in the Current Value field to the Total Value field as a positive value, mark a (+) sign.

6. To determine the volume of concrete needed for the driveway, use the calculator keypad 62 on the Primary Menuboard to enter 0.5, which represents the 6-inch depth of the driveway. When this value is entered, the Value Line format will change to look like the line below:

    ______________________________________                                         CURRENT VALUE .5000   TOTAL VALUE   3.2758                                     ______________________________________                                    

7. To multiply the Total Value by the constant in the Current Value field, mark a multiplication sign (*) on the Primary Menuboard. The Value Line should be similar to the line below:

    ______________________________________                                         CURRENT VALUE .0000   TOTAL VALUE   1.6379                                     ______________________________________                                    

8. To send the Total Value to the position of the cursor on the terminal display screen, mark DONE.

A different method can be used to measure the drawing of the driveway. The same can be measured by measuring the overall area of the outline and then subtracting the area inside the semi-circle that contains the tree.

1. Mark AREA-FREEFORM.

2. Mark points 1, 2, and 3, trace the arc between points 3 and 4, and then mark points 5 and 10.

3. To terminate the measurement, mark a (+) sign; the DI will remain in the Area-freeform measurement function.

4. To measure the area of the semicircle inside the driveway, mark points 7, 6, 9, and 8 in that order; then trace the arc between points 8 and 7.

5. To terminate the measurement and send the value in the Current Value field as a negative value, mark the (-) sign. Because Current Value has a negative value, when it is sent to the Total Value field, it will be subtracted from the existing Total Value. The new Total Value should then be about the same measurement that you made in step 4.

6. To terminate the measurement function and clear the Current and Total Values, mark CLEAR.

This figure can also be measured by stringing together the Area-rectangle measurement function and the Area-freeform measurement function.

1. Mark AREA-RECTANGLE.

2. To measure the rectangle on the left side of the diagram, mark points 1, 2, and 9.

3. To measure the small rectangle on the right side of the diagram, mark points 4, 5, and 6. This will default a (+) sign terminator to the value in the Current Value field (the area of the rectangle measured in the preceding step) and will send that value to the Total Value field.

4. To terminate the Area-rectangle measurement function, mark AREA-FREEFORM. This will default a (+) sign terminator to the area of the second rectangle, will send the value in the Current Value (the area of the second rectangle) to the Total Value (the area of the first rectangle) as a positive value, and will put the stylus in trace mode.

5. Trace the arcs between point 3 and 4 and between points 7 and 8, in that order. The DI will automatically use straight lines to connect points 4 and 7 and to connect points 8 and 3.

6. To terminate the measurement and add it to the Total Value, mark a (+) sign. The Total Value should be the same as the Total Value derived when the two previous methods were used to measure the area of the driveway.

7. To calculate the volume of concrete required for the driveway, mark 0.5 and a multiplication sign (*) on the Primary Menuboard keypad. This will multiply the area of the driveway (the Total Value) by 6 inches (0.5 feet).

8. To clear the Total Value and terminate the measurement function, mark CLEAR.

Internal Operation of Interface

This section describes the operation of adapter 34 under control of the programs in the Appendix to effect the principal functions of system 20.

Start-Up of System

Program operation commences with the initialization routine INIT. This routine establishes the variables, data fields and constants used in subsequent programs. This routine also includes real time interrupt routines, operation of which is to be described following a discussion of program operation during start-up of the system.

At the conclusion of initialization, program control is transferred to an infinite loop which commences at line 377 at end of INIT. This loop contains jumps to various routines in programs MAIN and PGM. INIT determines the first jump by setting a jump-defining variable STATE=Locate Menu State (line 335, INIT). Subsequent jumps are determined by changes in the variable STATE made variously by actions of the user, operation of other routines, and error conditions. All routines eventually return, directly or indirectly, through subsequent routines to the infinite loop.

The first jump turns on the locate menu indicator 49, as mentioned above in the second paragraph under "General Operation." If the system is just set up, the operator continues through the procedure described in "General Operation," starting with alignment of the digitizer arms 26. Since alignment is only done during initial set up, the program is written so that the system comes up assuming that the digitizer arms are aligned. For alignment upon initial set up, the user depresses the select button, which sets variable STATE=Align state (line 380). This action transfers the program control to procedure ALIGN STATE in module MAIN, starting at line 183, which sets indicator 47 on. While in this state, both the arms and menus are aligned, with the program merely displaying incoming digitizer data. After alignment, the operator presses the select switch and the routine sets STATE=Locate Menu, changing the indicators 47, 49 accordingly (lines 203-207).

Menu Coordinates Map

The Locate Menu routine is in MAIN, starting at line 210. Several succeeding subroutines are accessed by this routine. The program waits for four data points to be entered through the digitizer by marking the indicia on one of the menus. If both menus are to be used, the secondary menu 52 must be entered first. Once the first four points are entered, the program (PR LOCATE MENU TEST, PR LOCATE MENU, and PR LOCATE ROTATED MENU) compares the distances between the points, to validate the points as a valid menu, and to determine which menu is entered and its orientation (lines 250-287). This procedure includes testing the measured difference between the input points against prestored values to determine if it is a valid menu, its location, and whether it is rotated. The same procedure is followed for the primary menu.

Once these points are established, their coordinates are saved in memory as constants MENU X(0, 1, 2, 3) and MENU Y(0, 1, 2, 3). These constants are used in subsequent routines to determine which keys on the menus have been marked by the stylus during operation of the system. Through the PR MENU KEYS routine (MAIN, lines 772-779) these constants are used as offsets to access the coordinates map stored in memory for each menu. The coordinates map for the secondary menu board 52 is in MAIN at lines 808-End of Table preceding line 852, and for the primary board from line 869 through End of Table preceding line 896. These maps establish a fixed set of addresses for each key. The stored indicia coordinates, in effect, turn the fixed coordinates map addresses into relative addresses, in relation to the coordinates system of the digitizer.

When a new point is entered via the digitizer, the PR MENU KEY routine calls various other routines. First, it calls PR FUNCT KEYS TEST (lines 794-807), which sets up a menu key variable equal to the difference between the coordinates of a newly input point and the coordinates of one of the prestored indices. This variable reduces the coordinates of the new point relative to the origin on the menu to the fixed coordinates mapping of the menu stored in memory. The routine then tests to make sure that the new point is within the boundaries of the function or primary menu 54. If so, routine PROCESS MENU ZONES, which contains the coordinates map for the primary menu, is called. If not, then the program returns to PR MENU KEY and checks, first, to determine if the secondary menu 52 has been located (KEYBD MENU VALID=1), and if so, to transfer to the PR KEYBD MENU KEY TEST routine. That routine operates in the same manner as FUNCT MENU KEYS TEST to determine if the new point is on the secondary menu and, if so, to access its coordinates map in PROCESS KEYBD MENU ZONE.

If the new point is not within the area of either menu, then MENU KEY=0 (MAIN, line 274) remains unchanged and control returns to whatever routine called this routine. The new point is then treated as graphic data.

Input and Processing of Digitizer Data

Input and output is handled by an interrupt routine. Every millisecond a timer signal (OUT2) from circuit 140 is transmitted to microprocessor 100. Whenever the interrupt occurs, the microprocessor stops whatever it is doing and services the interrupt. Upon completion, it returns to what it was previously doing.

Referring to INIT, line 188-249, the interrupt signal starts a routine RTI which access further routines (PROCESS TX DATA, lines 268-295 and other routines at lines 250-267. This procedure resets the interrupt timer, tests the status of select button 53, and checks to the Serial I/O 130 to see if it contains either incoming data or data to be transmitted. When the digitizer is used in the trace mode, RTI also continually updates the Value Line on the CRT display. The routines at lines 250-267 control direction of data flow through multiplexers 150, 152, as further described below.

When the serial I/O contains meaning data, an 8-bit character is transferred by routine RTI into the microprocessor via data lines D0-D7 and then placed in RAM 120, incrementing a counter each time a character is stored (line 826). Then the interrupt routine checks for data to be transmitted and processes the transmission, as described in the next subsection. Once a full line (11 characters-English scale) of incoming data is stored, it is processed by other routines depending on the state of system, as next discussed.

As previously discussed, when the system is turned on, the program comes up in the Locate Menu state. If the program is switched to the ALIGN state, incoming data is displayed on the CRT 36 without further processing. The ALIGN state procedure (MAIN, lines 187-208) waits in a continuous loop until the character count is incremented above zero. Following an interrupt sequence in which the character count is incremented, indicating presence of a character, which has been put in memory, this procedure places the stored characters one at a time in an output buffer in RAM 120, incrementing an output buffer counter. This data is subsequently sent to the CRT display by operation of the interrupt routine. Once all characters are in the output buffer, the ALIGN state routine checks to see if the select button is pressed, and, if so, switches back to LOCATE MENU State.

In the LOCATE MENU State, procedure PR LINE (line 334, MAIN) is called. The output of this procedure is a set of variables containing the x4 coordinates of each point marked. Incoming data stored in RAM is processed, first-in, first-out, one entire 11-character line at a time, and converted from ASCII to binary integer form. This step is repeated for the four points marked by the user on each menu. The output set of variables is then processed as described in the previous subsection. Once the primary menu is located, the program automatically switches to the READY state (PGM, lines 390-456).

Scaling is the first user procedure ordinarily performed in the READY State. The initial scaling variable is set to zero, and so the program automatically resets STATE=Scaling State (line 394). This causes the program to display the scale on the CRT as XXXXXX/XXXXXX, warning the user to call the Scaling State. Doing so causes the program to exit to the main processing loop in INIT, which in turn calls the routine PR SCALING STATE (MAIN lines 456-475). This routine waits for coordinates of a point to be entered through the digitizer. In doing so, it calls PR LINE to process incoming as discussed above. Once coordinates of a point are received, PR SCALING STATE calls PR MENU KEYS to verify that the point is on a menuboard and checks to see which one it is (CHECK SCALE KEYS, lines 419-448). Depending on the choice of key, this routine changes the STATE variable. If the English or metric keys are marked, the PR SCALING STATE READY routine is called, which prompts the user to input the selected scale by marking numbers on the keypad of menuboard 54. If the Auto scale key is marked, then PR AUTO SCALING is called, which requires the users to mark two points on the graphic data and enter a number defining a ratio to the distance between the two points marks.

In either scaling routine, the X and Y scales can be scaled differently, the user marks one of the horizontal and vertical keys (HORIZ and VERT) before inputting the selected scale for the marked axis, and then does the same for the other axis. After both scales have been entered, the user marks the DONE key on menuboard 54. This action resets STATE=READY STATE and SCALING VALID=1 (MAIN, line 730) and returns to the main loop (INIT, line 377).

The main loop transfers control to the READY STATE routine (PGM, lines 390-456), and the program awaits incoming data or a change in the select button. Incoming data is processed as previously discussed. When a complete line of data is stored, this program tests to see if it is one of a defined set of keys on either menuboard, as listed in the READY STATE routine. When a key within the set is selected, the corresponding routine for the key is called. If no corresponding routine is stored, then the character is sent to the host computer. If an unlisted menu key is marked, then at lines 449, 450, the program calls two extension subroutines: first CHANGE STATE (lines 335-346) and, if the marked key is not found therein, then RESET STATE (lines 361-389). These routines access the corresponding routines for the remaining keys on the primary menu. PR READY STATE also accesses the keys on the secondary menu (lines 401-405).

Some of these keys control operation of the interface logic, without immediately transmitting information to the host computer. For example, any key in the scale section 66 will change the state to a scaling state. Any specific function key in section 68 will also change state to the selected function. To compute the area of a triangle, the triangle key is marked, followed by three points in the graphic data. Thereupon, the triangle function routine (lines 629-659) computes the area within the three points (using assembler routines in MATH), and displays the area in the Value Line of the CRT as described above in the examples. The triangle or other geometric function routine then awaits (1) more data points or (2) another valid menu key from a list in that routine similar to the list in READY STATE. To send the resultant answer, whatever appears in the Value line, to the host computer, the operator marks either the DONE or SEND key in Section 68. As previously discussed, the DONE and SEND keys can have different additional functions, depending on the requirements of host computer program. The ON and OFF keys and CLEAR and CLEAR LAST keys also are within this group.

The remaining keys directly cause a corresponding key code to be sent to the host computer in a format compatible with the host, e.g., in ASCII for the above-mentioned Texas Instruments minicomputers. In this way, numeric, alphabetic, and arithmetic characters 62, 70, 72 can be sent to the host computer as data, mimicking the function of an actual keyboard. The function keys F1 through F8 in section 64 are transmitted in the same way and are used, as desired, by the operator, e.g., to actuate prestored programs or data in the host computer.

Output and Switching of Data

The READY STATE and other routines that generate output data, call one of routine TRANSMIT (PGM, lines 201-214) and routine SEND (MAIN, lines 913-929) to load the data into the output buffer of RAM 120. The data is included within a variable-length character string which has first and last characters that set the data flow direction preceding and following the transmission of each block of data. This operation is performed by the interrupt routine RTI (INIT, lines 188-249). The portion of RTI commencing at line 233 controls multiplexers 150, 152 through various called routines (TX NORM, CPU and CRT, lines 250-268). (Two subsequent routines, TX LINE and POINT, affect the line-trace or point mode of operation of the stylus.)

Three choices of data flow direction are provided. The normal position provides for transmission from the CRT KEYBOARD to the host computer via MUX 150 and from the host computer to the CRT via MUX 152. The CPU position provides transmission from serial I/O circuit 130 to the CPU. The CRT position provides for transmission from CCT 130 to the CRT.

Once the direction of data is selected, another routine, PROCESS TX DATA (lines 268-295), is called repeatedly until the output buffer is emptied, to transfer the data from the buffer to serial I/O circuit 130. The writing of data into circuit 130 triggers serial transmission of the data on line TXD, at the baud rate established by clock signal TXC from timer 140. Such data goes to either the host CPU or to the CRT as determined by the data flow direction characters. If data is displayed on the CRT in the Value Line, it is saved in memory for subsequent, user-actuated transmission to the CPU.

FIG. 12 generally summarizes the above-described method of operation of the interface program so as to enable the user alternately to input, to the bid estimation applications program, either keyboard or function instructions from the menus or graphic data (either as processed in accordance with the instructions or directly as graphic data coordinates) entirely from the digitizer work area 24 without using keyboard 46. Operation commences at start block 200. Loading the interface program stores the coordinates map, and associated key codes corresponding to the keyboard signals and the various functions used for preprocessing graphic data for use by the estimation program, as shown in block 202. Next, when the user positions the menu in the digitizer work area 24, the interface program locates the keyboard and function menu coordinates in the software. This step, shown in block 204, establishes the relative coordinates contained in the coordinates map within the coordinates system of the digitizer. The interface program is then ready (block 206) to begin accepting and processing coordinates data from the digitizer. The program shifts from initialization to an operation mode, which commences in a wait state 208. Once the steps shown blocks 202 and 204 are performed, unless the menus are repositioned, whenever the program is subsequently started, it can shift directly to wait state 208 without having to repeat the initialization procedure.

In the operation procedure, when the user marks a point in work area 24, this point is digitized (block 210). The program tests to determine whether the point is within the coordinates map, which corresponds to the location of the menus, as shown in block 212. If not, the program returns to wait state 208. If so, the program proceeds to decision block 214, which determines whether the digitized point corresponds to a location on the keyboard menu or one on the function menu. If a keyboard character has been selected, the interface program selects, through the coordinates map, the key code corresponding to the keyboard character designated on the keyboard, as shown in block 216. This key code mimics the electrical signals that would have been produced by the corresponding key of the keyboard 46 if that key had been pressed by the user. Next, as shown in block 218, the key code is transmitted to the keyboard buffer of the computer and thereby provided, as shown in block 220, as input data to an application program, such as the above-mentioned construction cost estimation program, for subsequent processing.

Returning to decision block 214, if the user-designated point corresponds to a function on the function menu, the interface program selects the corresponding function through the coordinates map as indicated by block 222. As discussed above, most of these functions call for digitizing a number of points of graphical data, for processing by the selected function. The user may, however, interrupt or change functions by designating a function on the function menu. Thus, the user marks a point on the drawing or function menu and the digitizer and interface program digitize the selected points, as shown by block 224. Each of these points is tested in block 226 to determine whether the point is a function. If so, the program returns to the select function block 222. Otherwise, the program proceeds to block 228, to process the digitized points in the selected function as graphic data. The result of computations performed by the selected function on the graphic data is converted to an appropriate number of key codes like those output from keyboard 46. These key codes are then transmitted, by block 218, to the keyboard buffer for input to the applications program.

Having described and illustrated the principles of our invention in a preferred embodiment, it should be apparent that it may be modified in arrangement and detail without departing from such principles. We claim all modifications coming within the scope and spirit of the following claims. ##SPC1## 

We claim:
 1. A method for inputting two-dimensional graphical data from a first, construction drawing and processing instructions from a second drawing into a computer system through a digitizer means for sensing location coordinates of a user-designated point on a drawing and outputting a corresponding digitizer output signal; the computer system including a computer having logic and memory circuitry, a keyboard and a display terminal connected to the computer via data input and output means, and a prestored construction cost estimation program; the keyboard including keys defining a set of alphanumeric keyboard symbols and electrical circuitry for transmitting to the computer different signals uniquely defining each of said keyboard symbols; and the second drawing containing image of a keyboard comprising a first set of visible symbols corresponding to the set of keyboard symbols and a second set of symbols corresponding to preselected formulae; the method comprising:storing in the computer memory circuitry a coordinates map defining the coordinates of the first and second keyboard image, a first set of formulae in the logic and memory circuitry for making dimensional computations and a second set of unique signals corresponding to the keyboard symbols and which mimic the electrical signals generated by the keyboard circuitry; digitizing the coordinates of user-designated points on each of said drawings and outputting corresponding digitizer output signals; processing each digitizer output signal in accordance with the stored coordinates map to determine upon which drawing said point was designated and the coordinates of the location of the point thereon; for a digitizer output signal corresponding to a location of a point on the first drawing, formatting said coordinates as graphic data point coordinates; for a digitizer output signal corresponding to a location of a point on the second drawing, generating from the logic and memory circuitry a selected one of said set of unique symbols; processing a first digitizer output signal corresponding to a first location on the keyboard image through said coordinates map to select one of said formulae; processing a second digitizer output signal corresponding to graphic data coordinates of at least two points on the construction drawing including utilizing said coordinates within the selected formula to produce a resultant answer; and transmitting said resultant answer to the keyboard data input means for further processing by said estimation program.
 2. A method according to claim 1 including initially processing the digitizer output signal to determine if its coordinate correspond to the mapped coordinates of one of the symbols on the second drawing and, only if not, processing the coordinates as said graphic data.
 3. A method according to claim 1 in which the keyboard image includes a second set of visible function key symbols, includng storing in the coordinates map a second set of unique signals corresponding to the function key symbols, and, for a digitizer output signal corresponding to one of the function key symbols in the second set, transmitting a corresponding unique signal to the prestored estimation program to cause it to access an associated program from the second set of programs.
 4. A method to claim 1 in which the estimation program includes a procedure actuable by signals from the keyboard to operate upon quantitative graphic data, the method including:digitizing at least one point on the keyboard image so as to cause one of said second signals to actuate said procedure; digitizing at least one point on the graphical data so as to process the coordinates identified thereby in accordance with the selected formula; and processing the resultant answer in the estimation program in accordance with the procedure actuated by the second signal.
 5. A method according to claim 1 including:storing as one of said formulae an addressable preprocessing program for preprocessing at least one set of digitized graphic data coordinates and generating a resultant answer defining said function of the digitized graphic data coordinates; displaying in a predetermined location on the keyboard image a predetermined symbol associated with a function of the preprocessing program; and storing in the coordinates map an address for the preprocessing program locatable by digitizing the coordinates of said predetermined location; designating a first point on the predetermined symbol and a set of second points on the graphic data and operating the computer means to locate said address and to apply the data coordinates of the set of second points in said preprocessing program to generate said resultant answer; and transmitting said answer to said keyboard data input means.
 6. A method according to claim 1 including:providing visible alignment indicia on the drawing of the keyboard drawing in a predetermined position related to the keyboard character images; storing in the coordinates map the locations of the indicia and the characters relative to a predetermined origin; after positioning the keyboard image on the work surface, digitizing coordinates of the indicia; processing the indicia coordinates to establish in the logic means a location of the predetermined origin relative to the digitizing means and thereby jointly define a relative origin of the coordinates map and keyboard drawing; and accessing the coordinates map in accordance with the relative origin of the keyboard drawing.
 7. A system for detecting and processing analog graphic data shown on a drawing in a computer operable from an electrical alphanumeric keyboard through digital keyboard data input means for inputting electrical symbols to the computer and programmed with an applications program, the system comprising:a digitizer means disposable on a flat work surface for digitizing coordinates of a designated point on a predetermined area of said surface and outputting digital signals uniquely identifying the coordinates of each designated point; means defining an image of a computer keyboard for displaying visible symbols including a first set of alphanumeric characters and a second set of predetermined function symbols; and digitizer interface program means for preprocessing the digital signals output from the digitizer means to generate and transmit a modified set of digital output signals to the applications program via the digital data input means, the interface program means including: first prestored keyboard character means for generating first digital symbols in a form which mimic the electrical alphanumeric keyboard characters; second prestored function means including a set of formulae for making dimensional computations and generating second digital symbols defining results of the computations in the form of said keyboard characters; means for discriminating between digitized coordinates of points of said image and said drawing positioned in common within said predetermined area; and addressing means responsive to each of a predetermined subset of the digital signals from the digitizer means for accessing one of the first and second prestored means, the addressing means comprising: logic means for comparing the digital signals from the digitizer to said predetermined subset and, for a digital signal within said subset, selecting one the first and second prestored means, means including a prestored coordinates map defining relative coordinates of the first and second set of visible symbols for selectively accessing one of a first unique symbol stored in the first prestored keyboard character means, or a unique formula stored in the second prestored function means to generate a second unique symbol; means for outputting the selected unique symbol to the digital data input means; and locating means operable by a user after positioning the image means in said predetermined area for inputting digital signals identifying the location of the first and second sets of symbols as image coordinates within said area and linking said image coordinates to the relative coordinates of the coordinates map of the first and second drawings.
 8. Apparatus according to claim 7 in which the logic means is operative, for a digital signal not within said subset, to process said digital signal as coordinates of a point within the predetermined area but outside said keyboard image.
 9. Apparatus according to claim 7 in which the locating means includes means for independently locating said first and second images and linking the coordinates thereof to their respective relative coordinates in the coordinates map.
 10. Apparatus according to claim 7 in which the predetermined subset includes first and second subsets and the logic means is operable to select between the first and second prestored function means as determined by the first and second subsets, respectively. 